function adj = getAdjacentMatrix(mesh)
nn = mesh.countNodes();
nf = mesh.countFaces();
adj = spalloc(nn,nn,4*nn);
for i=1:nf
    nodes = mesh.getFace(i-1).getNodes();
    l = nodes.length();
    if l==3 || l==4
        for j=1:l-1
            adj(nodes(j).getId(),...
                nodes(j+1).getId()) = 1;
        end
        adj(nodes(l).getId(),...
            nodes(1).getId()) = 1;
    elseif l==8
        con = [1 5 2 6 3 7 4 8 1];
        for j=1:8
            adj(nodes(con(j)).getId(),...
                nodes(con(j+1)).getId()) = 1;
        end
    elseif l==6
        con = [1 4 2 5 3 6 1];
        for j=1:6
            adj(nodes(con(j)).getId(),...
                nodes(con(j+1)).getId()) = 1;
        end
    end
end
end
